/*
 * Campania.cpp
 *
 */

#include "Campania.h"

Campania::Campania(int id, int cantJugadoresMin, string imagen, int nivelDificultad, string nombre) {
	this->id = id;
	this->cantJugadoresMin = cantJugadoresMin;
	this->imagen = imagen;
	this->nivelDificultad = nivelDificultad;
	this->nombre = nombre;
}

Campania::~Campania() {
	map<int, Nivel*>::const_iterator
		mit(secuenciaNiveles.begin()), mend(secuenciaNiveles.end());

	for (; mit != mend; ++mit){
		delete mit->second;
	}
}

int Campania::getId(){
	return this->id;
}

int Campania::getCantJugadoresMin(){
	return this->cantJugadoresMin;
}

string Campania::getImagen(){
	return this->imagen;
}

int Campania::getNivelDificultad(){
	return this->nivelDificultad;
}

string Campania::getNombre(){
	return this->nombre;
}

int Campania::getNumberOfLevels() {
    return secuenciaNiveles.size();
}

void Campania::addNivel(int orden, Nivel & nivel){
	this->secuenciaNiveles[orden] = &nivel;
}

map<int, Nivel*> & Campania::getSecuenciaNiveles(){
	return this->secuenciaNiveles;
}

Nivel* Campania::getLevel(int level_number) {
    if (level_number > (int)secuenciaNiveles.size()) {
        return 0;
    }
    return secuenciaNiveles[level_number];
}
void Campania::setCantJugadoresMin(int cantJugadoresMin){
	this->cantJugadoresMin = cantJugadoresMin;
}

void Campania::setImagen(string imagen){
	this->imagen = imagen;
}

void Campania::setNivelDificultad(int nivelDificultad){
	this->nivelDificultad = nivelDificultad;
}

void Campania::setId(int id) {
	this->id = id;
}

void Campania::setNombre(string nombre){
	this->nombre = nombre;
}
